package Views.Movimiento;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import Inteface.InterfaceGrilla;
import Inteface.InterfacePanel;
import Logica.Util;

public class MovimientosCampos extends JPanel implements InterfaceGrilla, InterfacePanel {
	private JTextField tfFechaDesde;
	private JTextField tfFechaHasta;
	private JTextField tfTarjetas;
	private JTextField tfPuntos;
	private JTextField tfImporte;
	private JTextField tfVentas;
	private JButton btFechaHasta, btFechaDesde, btnBuscar;
	/**
	 * Create the panel.
	 */
	public MovimientosCampos(int id) {
		setLayout(null);
		this.setVisible(true);
		
		JLabel lblMovimiento = new JLabel("MOVIMIENTO");
		lblMovimiento.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblMovimiento.setBounds(10, 9, 130, 20);
		add(lblMovimiento);
		
		JSeparator separator1 = new JSeparator();
		separator1.setBounds(10, 34, 500, 2);
		add(separator1);
		
		
		JLabel lblFechaDesde = new JLabel("Desde");
		lblFechaDesde.setBounds(10, 43, 46, 14);
		add(lblFechaDesde);
		
		btFechaDesde = new JButton("...");
		btFechaDesde.setBounds(185, 38, 53, 23);
		add(btFechaDesde);
		
		tfFechaDesde = new JTextField();
		tfFechaDesde.setHorizontalAlignment(SwingConstants.CENTER);
		tfFechaDesde.setBounds(70, 40, 105, 20);
		tfFechaDesde.setText(Util.getFechaActual());
		add(tfFechaDesde);
		tfFechaDesde.setColumns(10);
		
		this.getFechaCalendario(btFechaDesde, tfFechaDesde);
		
		JLabel lblFechaHasta = new JLabel("Desde");
		lblFechaHasta.setBounds(10, 73, 46, 14);
		add(lblFechaHasta);
		
		tfFechaHasta = new JTextField();
		tfFechaHasta.setText((String) null);
		tfFechaHasta.setHorizontalAlignment(SwingConstants.CENTER);
		tfFechaHasta.setColumns(10);
		tfFechaHasta.setBounds(70, 70, 105, 20);
		tfFechaHasta.setText(Util.getFechaActual());
		add(tfFechaHasta);
		
		btFechaHasta = new JButton("...");
		btFechaHasta.setBounds(185, 68, 53, 23);
		add(btFechaHasta);
		
		this.getFechaCalendario(btFechaHasta, tfFechaHasta);
		
		JSeparator separator2 = new JSeparator();
		separator2.setBounds(10, 101, 500, 2);
		add(separator2);
		
		JLabel lblTarjetas = new JLabel("Tarjetas");
		lblTarjetas.setBounds(10, 114, 61, 14);
		add(lblTarjetas);
		
		JLabel lblPuntos = new JLabel("Puntos");
		lblPuntos.setBounds(80, 114, 65, 14);
		add(lblPuntos);
		
		JLabel lblImporte = new JLabel("Importe");
		lblImporte.setBounds(160, 114, 78, 14);
		add(lblImporte);
		
		tfTarjetas = new JTextField();
		tfTarjetas.setToolTipText("Tarjetas distintas");
		tfTarjetas.setHorizontalAlignment(SwingConstants.CENTER);
		tfTarjetas.setEditable(false);
		tfTarjetas.setBounds(10, 140, 50, 20);
		add(tfTarjetas);
		tfTarjetas.setColumns(10);
		
		tfPuntos = new JTextField();
		tfPuntos.setToolTipText("Puntos otorgados");
		tfPuntos.setEditable(false);
		tfPuntos.setHorizontalAlignment(SwingConstants.CENTER);
		tfPuntos.setBounds(72, 140, 55, 20);
		add(tfPuntos);
		tfPuntos.setColumns(10);
		
		tfImporte = new JTextField();
		tfImporte.setToolTipText("Importe cobrado");
		tfImporte.setHorizontalAlignment(SwingConstants.CENTER);
		tfImporte.setEditable(false);
		tfImporte.setBounds(152, 140, 70, 20);
		add(tfImporte);
		tfImporte.setColumns(10);
		
		JLabel lblVentas = new JLabel("Ventas");
		lblVentas.setBounds(248, 114, 61, 14);
		add(lblVentas);
		
		tfVentas = new JTextField();
		tfVentas.setToolTipText("Cantidad de tickets");
		tfVentas.setEditable(false);
		tfVentas.setHorizontalAlignment(SwingConstants.CENTER);
		tfVentas.setBounds(248, 140, 86, 20);
		add(tfVentas);
		tfVentas.setColumns(10);
		
		btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
			}
		});
		btnBuscar.setBounds(248, 69, 89, 23);
		add(btnBuscar);
		
		
//		this.init(id);
//		this.initSucursales();
	}

	/*Llamador del seleccionar fecha en calendario*/
	public void getFechaCalendario(JButton boton, final JTextField textfield){
	 final MovimientosCampos f = this;
	 boton.addActionListener(new ActionListener() {
	         public void actionPerformed(ActionEvent ae) {
	                textfield.setText(new Logica.CalendarioPicker(f).setPickedDate());
	               }
	         });
	 }
	
	@Override
	public void guardar() {
		try {
//			DAOToner dt = new DAOToner();
//			DAOMovimiento dm = new DAOMovimiento();
//			DAOAjuste da = new DAOAjuste();
//			DAORetiro dr = new DAORetiro();
//			DAODestino dd = new DAODestino();
//			
//			Destino d = new Destino();
//			Retiro r = new Retiro();
//			
//			int id = -1;
//			if(tfID.getText().length() > 0){
//				Integer.parseInt(tfID.getText());
//			}
//				
//			Movimiento m = (Movimiento) dm.getById(Integer.valueOf(id));
//			
//			String marca = "", modelo = "";
//			if (cbMarca.getSelectedIndex() > 0)
//				marca = cbMarca.getSelectedItem().toString();
//			if (cbModelo.getSelectedIndex() > 0)
//				modelo = cbModelo.getSelectedItem().toString();
//			
//			Toner t = (Toner) dt.getByMarcaModelo(marca, modelo);
//						
//			Ajuste a; 			
//			String ajuste = "";
//			
//			if (cbDetalle.getSelectedIndex() > 0)
//				ajuste = cbDetalle.getSelectedItem().toString();
//			a = (Ajuste) da.getByAjuste(ajuste);
//			
//			int cantidad = 0;
//			if (tfCantidad.getText().length() > 0){
//				cantidad = Integer.parseInt(tfCantidad.getText());								
//			}
//			m.setCantidad(cantidad);	
//			m.setFecha(Util.getDate(tfFechaDesde.getText()));
//			m.setIdAjuste(a.getId());
//			t.setStock(t.getStock() + (a.getEfecto()*m.getCantidad()));
//			dt.stock(t);
//			
//			m.setIdToner(t.getId());
//			dm.insert(m);
//			
//			
//			d.setSucursal(cbSucursal.getSelectedItem().toString());
//			d.setSeccion(cbSeccion.getSelectedItem().toString());
//			d.setOficina(cbOficina.getSelectedItem().toString());
//			d.setId(((Destino)dd.get(d)).getId());			
//			
//			r.setIdMovimiento(m.getId());
//			r.setIdDestino(d.getId());			
//			r.setNombre(tfRetiro.getText());
//			dr.insert(r);
//			
//			
//			this.cancelar();
			
		} catch (Exception e) {
			JOptionPane.showMessageDialog(this, "Error en la carga de datos", "Error",
			        JOptionPane.WARNING_MESSAGE);
			e.printStackTrace();
		}
		
		
	}

	@Override
	public void cancelar() {
//		tfID.setText("");
//		tfCantidad.setText("0");
//		initMarcas();
//		initModelos();		
//		cbDetalle.setSelectedItem("");	
//		tfEfecto.setText("");
//		cbDetalle.setSelectedItem("");
//		
//		this.initSucursales();
//		tfRetiro.setText("");
//		tfFechaDesde.setText(Util.getFechaActual());
	}

	public Object primero() {
//		DAOToner dt = new DAOToner();
//		return (Movimiento) dt.getFirst();
		return null;
	}

	public Object ultimo() {
//		DAOToner dt = new DAOToner();
//		return (Movimiento) dt.getLast();
		return null;
	}

	public Object anterior() {
//		DAOToner dt = new DAOToner();
//		if(tfID.getText().length()>0)
//			return (Movimiento) dt.getPre(Integer.parseInt(tfID.getText()));
//		else return primero();
		return null;
	}

	public Object posterior() {
//		DAOToner dt = new DAOToner();
//		if(tfID.getText().length()>0)
//			return (Movimiento) dt.getPost(Integer.parseInt(tfID.getText()));
//		else return primero();
		return null;
	}

	@Override
	public boolean grilla() {
		return false;
	}

	@Override
	public boolean campos() {
		return true;
	}

	@Override
	public int getPanel() {
		return 6;
	}

	@Override
	public void init(int id) {	
		
//		if(id == -1){
//			cancelar();
//		}else{
//			DAOMovimiento dm = new DAOMovimiento();
//			DAOToner dt = new DAOToner();
//			DAOAjuste da = new DAOAjuste();
//			
//			Movimiento m = (Movimiento)dm.getById(id);
//			Toner t = (Toner)dt.getById(m.getIdToner());
//			Ajuste a = (Ajuste)da.getById(m.getIdAjuste());
//			
//			tfID.setText(Integer.toString(m.getId()));
//			tfCantidad.setText(Integer.toString(m.getCantidad()*a.getEfecto()));
//			
//			cbDetalle.setSelectedItem(a.getAjuste());
//			tfEfecto.setText(Integer.toString(a.getEfecto()));
////			if(a.getEfecto() >= 0)
////				cbEfecto.setSelectedItem("suma");
////			else
////				cbEfecto.setSelectedItem("resta");
////			
//			cbMarca.setSelectedItem(t.getMarca());
//			initModelos();
//			cbModelo.setSelectedItem(t.getModelo());
//			
//			initDetalleAjuste();
//			cbDetalle.setSelectedItem(a.getEfecto());
////			tfCodigo.setText(t.getCodigo());			
//		}
	}

	@Override
	public int getRowSelected() {
		return -1;
	}
	
	
    
  //CARGA LISTA DE SUCURSALES 
    public void initSucursales(){
//        List<Object>list = null;
//        DAODestino dt = new DAODestino();
//        Destino d;
//        list = dt.listSucursal();
//        for(Object o: list) {
//        	d = (Destino) o;
//        	cbSucursal.addItem(d.getSucursal()); 
//           } 
        }
    
    
  
    
  //CARGA LISTA DE MODELOS 
//    public void initModelos(){
//        List<Object>list = null;
//        String marca; 
//        DAOToner dt = new DAOToner();
//        Toner t;
//        if (cbMarca.getSelectedIndex() < 0){
//                marca = "";             
//        }else {
//                marca = cbMarca.getSelectedItem().toString(); 
//                list = dt.listMarca(marca);
//	            cbModelo.removeAllItems();
//	            cbModelo.addItem("");  
//	            for(Object o: list) {
//	                t = (Toner)o;
//	                cbModelo.addItem(t.getModelo()); 
//               } 
//        }           
//        }

	@Override
	public void nuevo() {
		this.cancelar();
	}

	@Override
	public int setprimero() {
		return -1;
	}

	@Override
	public int setultimo() {
		return -1;
	}

	@Override
	public int setanterior() {
		return -1;
	}

	@Override
	public int setposterior() {
		return -1;
	}
}
